#!/usr/bin/env bash
#-------------------------------------------------------
#	FileName	: test.sh
#	Author		：hpy
#	Date		：2020年10月09日
#	Description	：
#-------------------------------------------------------

#列出目录
findDir(){
    l1=$(ls)
    for i in $l1
    do
        test -d $i && echo "$i/"
    done
}
#寻找和要求的文件
findFile(){
    l1=$(ls)
    for i in $l1
    do
        test ! -f $i && continue
        local typeFile=${i##*.}
        if [ $typeFile = "sh" ] || [ $typeFile = "fish" ] ;then
            echo $i
        fi
    done
}

#显示文件树
disTree(){
    local flagFile=".sortdir"
    local rootDir=$1
    local dstDir=$2 
    local format=$3
    local isOpen=0;
    
    test -d $dstDir && cd $dstDir || return
    local nowPathDir=$(findDir)
    local nowPathFile=$(findFile)
    local numOfDir=$(findDir| wc -l) #可见文件夹数量

    if [ ! -f $flagFile ] ;then
        echo "0" >  $flagFile
    else
        isOpen=$(cat $flagFile)
    fi

    if [ $isOpen -eq 1 ] ;then #打开目录标志
        echo  "$format - $dstDir"
        if [ $numOfDir -gt 0 ] ;then
            for adir in $nowPathDir
            do
                test ${#adir} -eq 0 && break
                disTree $(pwd) $adir " $format "
            done
        fi
        for aFile in $nowPathFile
        do
            echo "$format     $aFile"
        done
        if [ $numOfDir -gt 0 ] ;then 
            cd $rootDir
            return 
        fi
    else
        echo "$format + $dstDir"
        cd $rootDir
        return 
    fi
}

disTree ./ ./ ""
